package com.are.odisea;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class ManejadorAdjuntoMensaje {
	private db conexion = null;
	private AdjuntoMensaje adjmen;
	
	public static final int ORDER_ID = 1;
	public static final int ORDER_MEN = 2;

	public ManejadorAdjuntoMensaje(db conexion) {
		super();
		this.setConexion(conexion);
		this.setAdjmen(new AdjuntoMensaje());
	}
	public ManejadorAdjuntoMensaje(db conexion, AdjuntoMensaje adjmen) {
		super();
		this.setConexion(conexion);
		this.setAdjmen(adjmen);
	}
	public db getConexion() {
		return conexion;
	}
	public void setConexion(db conexion) {
		this.conexion = conexion;
	}
	
	public boolean add() throws SQLException{
		boolean result = false;

			String sql = "insert into Adjuntos (descripcion,ruta,mensaje) values (?,?,?)";
			java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
			pst.setString(1, adjmen.getDescripcion());
			pst.setString(2, adjmen.getRuta());
			pst.setString(3, adjmen.getMensaje());
			if (conexion.Update(pst) > 0) {
				conexion.Commit();
				result = true;
			}
		return result;
	}
	
	public boolean update(String key) throws SQLException{
		boolean result = false;

			String sql = "update Adjuntos set descripcion= ?, ruta=?,mensaje=? where id=?";
			
			java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
			pst.setString(1, adjmen.getDescripcion());
			pst.setString(2, adjmen.getRuta());
			pst.setString(3, adjmen.getMensaje());
			pst.setString(4, key);
			
			if (conexion.Update(pst) > 0) {
				conexion.Commit();
				result = true;
			}
			
		return result;
	}
	
	public boolean remove(String key) throws SQLException {
		boolean result = false;

			String sql = "delete from Adjuntos where id=?";
			java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
			pst.setString(1,key);
			if (conexion.Update(pst) > 0) {
				conexion.Commit();
				result = true;
			}
			

		return result;	
	}
	
	
	public boolean exist(String key) throws SQLException {
		boolean result = false;

			String sql = "select * from Adjuntos where id = ?";
			java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
			pst.setString(1,key);
			ResultSet rs = conexion.Query(pst);
			if (rs.next()) {
				result = true;
			}
			rs.close();
			
		
		return result;	
	}
	
	public boolean Find(String key) throws SQLException {
		boolean result = false;

			String sql = "select * from Adjuntos where id=?";
			java.sql.PreparedStatement pst = conexion.getConnection().prepareStatement(sql);
			pst.setString(1,key);
			ResultSet rs = conexion.Query(pst);
			if (rs.next()) {
				adjmen = new AdjuntoMensaje();
				adjmen.setDescripcion(rs.getString("descripcion"));
				adjmen.setRuta(rs.getString("ruta"));
				adjmen.setMensaje(rs.getString("mensaje"));
				adjmen.setId(rs.getString("id"));
				result = true;
			}
			rs.close();
		return result;	
	}
	
	public ArrayList<AdjuntoMensaje> list() throws SQLException {
		ArrayList<AdjuntoMensaje> adj = new ArrayList<AdjuntoMensaje>();
		
			String sql = "select * from vnoticias order by id";
			ResultSet rs  = conexion.Query(sql);
			while(rs.next()) {
				adjmen = new AdjuntoMensaje();
				adjmen.setDescripcion(rs.getString("descripcion"));
				adjmen.setRuta(rs.getString("ruta"));
				adjmen.setMensaje(rs.getString("mensaje"));
				adjmen.setId(rs.getString("id"));
				adj.add(adjmen);
			}
			rs.close();
		return adj;
	}
	
	public ArrayList<AdjuntoMensaje> list(int orden) throws SQLException {
		ArrayList<AdjuntoMensaje> adj = new ArrayList<AdjuntoMensaje>();

			String sql = "select * from Adjuntos";
			
			switch(orden) {
			case ORDER_ID:
				sql += " order by id";
			break;
			case ORDER_MEN:
				sql += " order by mensaje desc";
			break;
			}
			ResultSet rs  = conexion.Query(sql);
			while(rs.next()) {
				adjmen = new AdjuntoMensaje();
				adjmen.setDescripcion(rs.getString("descripcion"));
				adjmen.setRuta(rs.getString("ruta"));
				adjmen.setMensaje(rs.getString("mensaje"));
				adjmen.setId(rs.getString("id"));
				adj.add(adjmen);
			}
			rs.close();
		return adj;
	}
	
	public ArrayList<AdjuntoMensaje> listImgNot(String men, int orden) throws SQLException {
		ArrayList<AdjuntoMensaje> adj = new ArrayList<AdjuntoMensaje>();

			String sql = "select * from Adjuntos where mensaje='"+men+"'";
			
			switch(orden) {
			case ORDER_ID:
				sql += " order by id";
			break;
			case ORDER_MEN:
				sql += " order by mensaje desc";
			break;
			}
			ResultSet rs  = conexion.Query(sql);
			while(rs.next()) {
				adjmen = new AdjuntoMensaje();
				adjmen.setDescripcion(rs.getString("descripcion"));
				adjmen.setRuta(rs.getString("ruta"));
				adjmen.setMensaje(rs.getString("mensaje"));
				adjmen.setId(rs.getString("id"));
				adj.add(adjmen);
			}
			rs.close();
		return adj;
	}
	public AdjuntoMensaje getAdjmen() {
		return adjmen;
	}
	public void setAdjmen(AdjuntoMensaje adjmen) {
		this.adjmen = adjmen;
	}
}
